--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / Sideband.git / files / sbapp / plyer / platforms / linux / notification.py
Displaying Raw • Download
sbapp/plyer/platforms/linux/notification.py f8b3e3760b831745cf10d97aeae64e9c00a136a9 (f8b3e376) Text, 3.44 KB
T8b949e'''
Module of Linux API for plyer.notification.
'''
Tff7b72import T7ee787warnings
Tff7b72import T7ee787subprocess
Tff7b72from T7ee787sbappT7ee787.T7ee787plyerT7ee787.T7ee787facades Tff7b72import Te6edf3Notification
Tff7b72from T7ee787sbappT7ee787.T7ee787plyerT7ee787.T7ee787utils Tff7b72import Te6edf3whereis_exe
Tff7b72import T7ee787os
Tff7b72class T56d364NotifyDesktopPortalsTb4b4b4(Te6edf3NotificationTb4b4b4)Tb4b4b4:
T8b949e'''
Implementation of xdg-desktop-portals API.
'''
Tff7b72def Td2a8ff_notifyTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Te6edf3title Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4)
Te6edf3body Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff"Ta5d6ffmessageTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4)
Te6edf3subprocessTff7b72.Td2a8ffrunTb4b4b4(Tb4b4b4[
Ta5d6ff"Ta5d6ffgdbusTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffcallTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--sessionTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--destTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fforg.freedesktop.portal.DesktopTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ff--object-pathTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff/org/freedesktop/portal/desktopTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff--methodTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fforg.freedesktop.portal.Notification.AddNotificationTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ff{Ta5d6ff'Ta5d6fftitleTa5d6ff'Ta5d6ff: <Ta5d6ff'Ta5d6ff" Tff7b72+ Te6edf3title Tff7b72+ Ta5d6ff"Ta5d6ff'Ta5d6ff>, Ta5d6ff'Ta5d6ffbodyTa5d6ff'Ta5d6ff: <Ta5d6ff'Ta5d6ff" Tff7b72+ Te6edf3body Tff7b72+ Ta5d6ff"Ta5d6ff'Ta5d6ff>}Ta5d6ff"
Tb4b4b4]Tb4b4b4, Te6edf3stdoutTff7b72=Te6edf3subprocessTff7b72.Td2a8ffDEVNULLTb4b4b4)
Tff7b72class T56d364NotifySendNotificationTb4b4b4(Te6edf3NotificationTb4b4b4)Tb4b4b4:
T8b949e'''
Implementation of Linux notification API
using notify-send binary.
'''
Tff7b72def Td2a8ff_notifyTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Te6edf3icon Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fficonTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff'Tb4b4b4)
Te6edf3title Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fftitleTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6fftitleTa5d6ff'Tb4b4b4)
Te6edf3hint Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffhintTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffstring::Ta5d6ff'Tb4b4b4)
Te6edf3message Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffmessageTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffbodyTa5d6ff'Tb4b4b4)
Te6edf3category Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffcategoryTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff'Tb4b4b4)
Te6edf3app_name Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffapp_nameTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff'Tb4b4b4)
Te6edf3urgency Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffurgencyTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ffnormalTa5d6ff'Tb4b4b4)
Te6edf3expire_time Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffexpire_timeTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff0Ta5d6ff'Tb4b4b4)
Te6edf3notify_send_args Tff7b72= Tb4b4b4(Te6edf3titleTb4b4b4,
Te6edf3messageTb4b4b4,
Ta5d6ff"Ta5d6ff-iTa5d6ff"Tb4b4b4, Te6edf3iconTb4b4b4,
Ta5d6ff"Ta5d6ff-hTa5d6ff"Tb4b4b4, Te6edf3hintTb4b4b4,
Ta5d6ff"Ta5d6ff-uTa5d6ff"Tb4b4b4, Te6edf3urgencyTb4b4b4,
Ta5d6ff"Ta5d6ff-cTa5d6ff"Tb4b4b4, Te6edf3categoryTb4b4b4,
Ta5d6ff"Ta5d6ff-aTa5d6ff"Tb4b4b4, Te6edf3app_nameTb4b4b4,
Ta5d6ff"Ta5d6ff-tTa5d6ff"Tb4b4b4, Te6edf3expire_timeTb4b4b4)
Te6edf3subprocessTff7b72.Td2a8ffcallTb4b4b4(Tb4b4b4[Ta5d6ff"Ta5d6ffnotify-sendTa5d6ff"Tb4b4b4, Tff7b72*Te6edf3notify_send_argsTb4b4b4]Tb4b4b4)
Tff7b72class T56d364NotifyDbusTb4b4b4(Te6edf3NotificationTb4b4b4)Tb4b4b4:
T8b949e'''
Implementation of Linux notification API
using dbus library and dbus-python wrapper.
'''
Tff7b72def Td2a8ff_notifyTb4b4b4(Tff7b72selfTb4b4b4, Tff7b72*Tff7b72*Te6edf3kwargsTb4b4b4)Tb4b4b4:
Te6edf3summary Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fftitleTa5d6ff'Tb4b4b4, Ta5d6ff"Ta5d6fftitleTa5d6ff"Tb4b4b4)
Te6edf3body Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffmessageTa5d6ff'Tb4b4b4, Ta5d6ff"Ta5d6ffbodyTa5d6ff"Tb4b4b4)
Te6edf3app_name Tff7b72= Ta5d6ff"Ta5d6ffSidebandTa5d6ff"
Te6edf3app_icon Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffapp_iconTa5d6ff'Tb4b4b4, Ta5d6ff'Ta5d6ff'Tb4b4b4)
Te6edf3timeout Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6fftimeoutTa5d6ff'Tb4b4b4, T79c0ff10Tb4b4b4)
Te6edf3actions Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffactionsTa5d6ff'Tb4b4b4, Tb4b4b4[Tb4b4b4]Tb4b4b4)
Te6edf3hints Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffhintsTa5d6ff'Tb4b4b4, Tb4b4b4{Tb4b4b4}Tb4b4b4)
Te6edf3replaces_id Tff7b72= Te6edf3kwargsTff7b72.Td2a8ffgetTb4b4b4(Ta5d6ff'Ta5d6ffreplaces_idTa5d6ff'Tb4b4b4, T79c0ff0Tb4b4b4)
Te6edf3_bus_name Tff7b72= Ta5d6ff'Ta5d6fforg.freedesktop.NotificationsTa5d6ff'
Te6edf3_object_path Tff7b72= Ta5d6ff'Ta5d6ff/org/freedesktop/NotificationsTa5d6ff'
Te6edf3_interface_name Tff7b72= Te6edf3_bus_name
Tff7b72import T7ee787dbus
Te6edf3session_bus Tff7b72= Te6edf3dbusTff7b72.Td2a8ffSessionBusTb4b4b4(Tb4b4b4)
Te6edf3obj Tff7b72= Te6edf3session_busTff7b72.Td2a8ffget_objectTb4b4b4(Te6edf3_bus_nameTb4b4b4, Te6edf3_object_pathTb4b4b4)
Te6edf3interface Tff7b72= Te6edf3dbusTff7b72.Td2a8ffInterfaceTb4b4b4(Te6edf3objTb4b4b4, Te6edf3_interface_nameTb4b4b4)
Te6edf3interfaceTff7b72.Td2a8ffNotifyTb4b4b4(
Te6edf3app_nameTb4b4b4, Te6edf3replaces_idTb4b4b4, Te6edf3app_iconTb4b4b4,
Te6edf3summaryTb4b4b4, Te6edf3bodyTb4b4b4, Te6edf3actionsTb4b4b4,
Te6edf3hintsTb4b4b4, Te6edf3timeout Tff7b72* T79c0ff1000
Tb4b4b4)
Tff7b72def Td2a8ffinstanceTb4b4b4(Tb4b4b4)Tb4b4b4:
T8b949e'''
Instance for facade proxy.
'''
Tff7b72if Te6edf3osTff7b72.Td2a8ffpathTff7b72.Td2a8ffisdirTb4b4b4(Ta5d6ff"Ta5d6ff/appTa5d6ff"Tb4b4b4)Tb4b4b4:
T8b949e# Flatpak
Tff7b72return Te6edf3NotifyDesktopPortalsTb4b4b4(Tb4b4b4)
Tff7b72tryTb4b4b4:
Tff7b72import T7ee787dbus T8b949e# noqa: F401
Tff7b72return Te6edf3NotifyDbusTb4b4b4(Tb4b4b4)
Tff7b72except Tf85149ImportErrorTb4b4b4:
Te6edf3msg Tff7b72= Tb4b4b4(Ta5d6ff"Ta5d6ffThe Python dbus package is not installed.Tffea00\nTa5d6ff"
Ta5d6ff"Ta5d6ffTry installing it with your distributionTa5d6ff'Ta5d6ffs package manager, Ta5d6ff"
Ta5d6ff"Ta5d6ffit is usually called python-dbus or python3-dbus, but you Ta5d6ff"
Ta5d6ff"Ta5d6ffmight have to try dbus-python instead, e.g. when using pip.Ta5d6ff"Tb4b4b4)
Te6edf3warningsTff7b72.Td2a8ffwarnTb4b4b4(Te6edf3msgTb4b4b4)
Tff7b72if Te6edf3whereis_exeTb4b4b4(Ta5d6ff'Ta5d6ffnotify-sendTa5d6ff'Tb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3NotifySendNotificationTb4b4b4(Tb4b4b4)
Te6edf3warningsTff7b72.Td2a8ffwarnTb4b4b4(Ta5d6ff"Ta5d6ffnotify-send not found.Ta5d6ff"Tb4b4b4)
Tff7b72return Te6edf3NotificationTb4b4b4(Tb4b4b4)
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────